"""
工具的模块 里面可以有封装
读取excel的方法,
操作数据库的方法,
读取yaml的方法
读取json的方法

面试题: 有没有自己封装过一些函数?
"""
import os

import pymysql
import xlrd
def read_excel(file_path,sheet_name,row_index)->list[tuple]:
    rows=[]
    # 获取当前项目的根目录
    base_path = os.path.dirname(os.path.dirname(__file__))
    # 获取文件的动态的绝对路径
    data_path = os.path.join(base_path, file_path) #路径拼接
    wb=xlrd.open_workbook(data_path)
    book=wb.sheet_by_name(sheet_name)
    for i in range(row_index,book.nrows):
        rows.append(tuple(book.row_values(i)))
    return rows


def db_util(sql: str, host="localhost", port=3306, user="", password="", database=""):
    conn = None
    cur = None
    try:
        # 建立数据库连接
        conn = pymysql.connect( host=host, port=port, user=user,password=password, database=database)
        # 创建游标对象
        cur = conn.cursor()
        # 执行SQL语句
        cur.execute(sql)
        # 根据SQL类型处理返回结果
        if sql.strip().lower().startswith("select"):
            # 查询操作返回所有结果
            result = cur.fetchall()
            return result
        else:
            # 增删改操作提交事务
            conn.commit()
            return True
    except Exception as e:
        # 发生异常时回滚事务
        if conn:
            conn.rollback()
            return  False
        # 重新抛出异常供调用方处理
        raise e
    finally:
        # 关闭游标和连接
        if cur:
            cur.close()
        if conn:
            conn.close()

if __name__ == '__main__':
    print(read_excel("data/test_data.xls", "login_data", 1))